๋ค์ํ ํ๋ก์ ํธ ์ค์ ๋ฐ ํด๋ง์์ ์ฆ๋ถ ๋น๋๋ฅผ ์ต์ ํํ๊ณ , ๋น๋ ์๊ฐ์ ๋จ์ถํ๋ฉฐ, ๊ฐ๋ฐ์ ๊ฒฝํ์ ํฅ์์ํค๊ธฐ ์ํ ํ๋ฐํธ์๋ ๋น๋ ์บ์ ๋ฌดํจํ ์ ๋ต์ ๋ํ ์ฌ์ธต ๋ถ์.
ํ๋ฐํธ์๋ ๋น๋ ์บ์ ๋ฌดํจํ: ์๋๋ฅผ ์ํ ์ฆ๋ถ ๋น๋ ์ต์ ํ
๋น ๋ฅด๊ฒ ๋ณํํ๋ ํ๋ฐํธ์๋ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋น๋ ์๊ฐ์ ๊ฐ๋ฐ์ ์์ฐ์ฑ๊ณผ ์ ๋ฐ์ ์ธ ํ๋ก์ ํธ ํจ์จ์ฑ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋๋ฆฐ ๋น๋๋ ์ข์ ๊ฐ์ ์ ๋ฐํ๊ณ , ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ์ง์ฐ์ํค๋ฉฐ, ๊ถ๊ทน์ ์ผ๋ก ์ ์ฒด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋ฆ์ถฅ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์ ๋ต ์ค ํ๋๋ ๋น๋ ์บ์๋ฅผ ์ง๋ฅ์ ์ผ๋ก ์ฌ์ฉํ๊ณ , ๋ฌด์๋ณด๋ค ์บ์๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ฌดํจํํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๊ฒ์ ๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ํ๋ฐํธ์๋ ๋น๋ ์บ์ ๋ฌดํจํ์ ๋ณต์ก์ฑ์ ๊น์ด ํ๊ณ ๋ค์ด, ์ฆ๋ถ ๋น๋๋ฅผ ์ต์ ํํ๊ณ ์ํํ ๊ฐ๋ฐ์ ๊ฒฝํ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ค์ฉ์ ์ธ ์ ๋ต์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
๋น๋ ์บ์๋ ๋ฌด์์ธ๊ฐ์?
๋น๋ ์บ์๋ ์ด์ ๋น๋ ๋จ๊ณ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ์๊ตฌ ์ ์ฅ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ๋น๋๊ฐ ํธ๋ฆฌ๊ฑฐ๋๋ฉด ๋น๋ ๋๊ตฌ๋ ์บ์๋ฅผ ํ์ธํ์ฌ ๋ง์ง๋ง ๋น๋ ์ดํ ์ ๋ ฅ ํ์ผ์ด๋ ์ข ์์ฑ ์ค ๋ณ๊ฒฝ๋ ๊ฒ์ด ์๋์ง ํ์ธํฉ๋๋ค. ๋ณ๊ฒฝ๋ ๊ฒ์ด ์๋ค๋ฉด ์บ์๋ ๊ฒฐ๊ณผ๊ฐ ์ฌ์ฌ์ฉ๋์ด ํด๋น ํ์ผ์ ๋ค์ ์ปดํ์ผํ๊ณ ๋ฒ๋ค๋งํ๋ฉฐ ์ต์ ํํ๋ ์๊ฐ ์๋ชจ์ ์ธ ํ๋ก์ธ์ค๋ฅผ ๊ฑด๋๋ธ ์ ์์ต๋๋ค. ์ด๋ ํนํ ๋ง์ ์ข ์์ฑ์ ๊ฐ์ง ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๋น๋ ์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ๋จ์ถํฉ๋๋ค.
๋๊ท๋ชจ React ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๋ ์๋๋ฆฌ์ค๋ฅผ ์์ํด ๋ณด์ธ์. ๋จ์ผ ์ปดํฌ๋ํธ์ ์คํ์ผ๋ง ์์ ํ์ต๋๋ค. ๋น๋ ์บ์๊ฐ ์๋ค๋ฉด, ๋ชจ๋ ์ข ์์ฑ ๋ฐ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ ํฌํจํ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ๋น๋ํด์ผ ํฉ๋๋ค. ๋น๋ ์บ์๊ฐ ์๋ค๋ฉด, ์์ ๋ ์ปดํฌ๋ํธ์ ์ ์ฌ์ ์ผ๋ก ์ง์ ์ ์ธ ์ข ์์ฑ๋ง ์ฒ๋ฆฌํ๋ฉด ๋๋ฏ๋ก ์๋นํ ์๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค.
์บ์ ๋ฌดํจํ๊ฐ ์ ์ค์ํ๊ฐ์?
๋น๋ ์บ์๋ ์๋ ๋ฉด์์ ๋งค์ฐ ์ค์ํ์ง๋ง, ์ ๋๋ก ๊ด๋ฆฌ๋์ง ์์ผ๋ฉด ๋ฏธ๋ฌํ๊ณ ๊ณจ์น ์ํ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์๋ ์์ต๋๋ค. ํต์ฌ ๋ฌธ์ ๋ ์บ์ ๋ฌดํจํ์ ์์ต๋๋ค. ์ฆ, ์บ์๋ ๊ฒฐ๊ณผ๊ฐ ๋ ์ด์ ์ ํจํ์ง ์์ ์๋ก๊ณ ์นจํด์ผ ํ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ๊ณผ์ ์ ๋๋ค.
์บ์๊ฐ ์ ๋๋ก ๋ฌดํจํ๋์ง ์์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ค๋๋ ์ฝ๋: ์ต๊ทผ ๋ณ๊ฒฝ์ฌํญ์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด์ ๋ฒ์ ์ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
- ์๊ธฐ์น ์์ ๋์: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด์ ์ฝ๋์ ์ ์ฝ๋๋ฅผ ํผํฉํ์ฌ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ถ์ ํ๊ธฐ ์ด๋ ค์ด ๋ถ์ผ์น ๋ฐ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ๋ฐฐํฌ ๋ฌธ์ : ๋น๋ ํ๋ก์ธ์ค๊ฐ ์ต์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํ์ง ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ฒฌ๊ณ ํ ์บ์ ๋ฌดํจํ ์ ๋ต์ ๋น๋ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํญ์ ์ต์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ฐ์ํ๋๋ก ๋ณด์ฅํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ด๋ ์๋ํ๋ ๋น๋๊ฐ ๋น๋ฒํ๊ณ ๋น๋ ํ๋ก์ธ์ค์ ์ ํ์ฑ์ ํฌ๊ฒ ์์กดํ๋ ์ง์์ ํตํฉ/์ง์์ ๋ฐฐํฌ(CI/CD) ํ๊ฒฝ์์ ํนํ ๊ทธ๋ ์ต๋๋ค.
๋ค์ํ ์ ํ์ ์บ์ ๋ฌดํจํ ์ดํดํ๊ธฐ
๋น๋ ์บ์๋ฅผ ๋ฌดํจํํ๋ ๋ช ๊ฐ์ง ์ฃผ์ ์ ๋ต์ด ์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ ํํ๋ ๊ฒ์ ํน์ ๋น๋ ๋๊ตฌ, ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ฐ ๋ณ๊ฒฝ ์ ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
1. ์ฝํ ์ธ ๊ธฐ๋ฐ ํด์ฑ
์ฝํ ์ธ ๊ธฐ๋ฐ ํด์ฑ์ ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์บ์ ๋ฌดํจํ ๊ธฐ์ ์ค ํ๋์ ๋๋ค. ์ด๋ ๊ฐ ํ์ผ ์ฝํ ์ธ ์ ํด์(๊ณ ์ ํ ์ง๋ฌธ)๋ฅผ ์์ฑํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ๋น๋ ๋๊ตฌ๋ ์ด ํด์๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ง๋ง ๋น๋ ์ดํ ํ์ผ์ด ๋ณ๊ฒฝ๋์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์๋ ๋ฐฉ์:
- ๋น๋ ํ๋ก์ธ์ค ์ค์ ๋๊ตฌ๋ ๊ฐ ํ์ผ์ ์ฝํ ์ธ ๋ฅผ ์ฝ์ต๋๋ค.
- ํด๋น ์ฝํ ์ธ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ ๊ฐ(์: MD5, SHA-256 ์ฌ์ฉ)์ ๊ณ์ฐํฉ๋๋ค.
- ํด์๋ ์บ์๋ ๊ฒฐ๊ณผ์ ํจ๊ป ์ ์ฅ๋ฉ๋๋ค.
- ํ์ ๋น๋์์ ๋๊ตฌ๋ ๊ฐ ํ์ผ์ ํด์๋ฅผ ๋ค์ ๊ณ์ฐํฉ๋๋ค.
- ์๋ก์ด ํด์๊ฐ ์ ์ฅ๋ ํด์์ ์ผ์นํ๋ฉด ํ์ผ์ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ฉฐ ์บ์๋ ๊ฒฐ๊ณผ๊ฐ ์ฌ์ฌ์ฉ๋ฉ๋๋ค.
- ํด์๊ฐ ๋ค๋ฅด๋ฉด ํ์ผ์ด ๋ณ๊ฒฝ๋ ๊ฒ์ด๋ฏ๋ก ๋น๋ ๋๊ตฌ๋ ํด๋น ํ์ผ์ ๋ค์ ์ปดํ์ผํ๊ณ ์๋ก์ด ๊ฒฐ๊ณผ ๋ฐ ํด์๋ก ์บ์๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ฅ์ :
- ์ ํ์ฑ: ํ์ผ์ ์ค์ ์ฝํ ์ธ ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง ์บ์๋ฅผ ๋ฌดํจํํฉ๋๋ค.
- ๊ฒฌ๊ณ ํจ: ์ฝ๋, ์์ฐ ๋ฐ ์ข ์์ฑ ๋ณ๊ฒฝ์ ์ฒ๋ฆฌํฉ๋๋ค.
๋จ์ :
- ์ค๋ฒํค๋: ๊ฐ ํ์ผ์ ์ฝํ ์ธ ๋ฅผ ์ฝ๊ณ ํด์ฑํด์ผ ํ๋ฏ๋ก ์ฝ๊ฐ์ ์ค๋ฒํค๋๊ฐ ์ถ๊ฐ๋ ์ ์์ง๋ง, ์บ์ฑ์ ์ด์ ์ด ์ด๋ฅผ ํจ์ฌ ๋ฅ๊ฐํฉ๋๋ค.
์์ (Webpack):
Webpack์ `[contenthash]`์ ๊ฐ์ ํ๋ ์ด์คํ๋๋ฅผ ์ฌ์ฉํ๋ `output.filename`๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํตํด ์ฝํ ์ธ ๊ธฐ๋ฐ ํด์ฑ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ด๋ ํด๋น ์ฒญํฌ์ ์ฝํ ์ธ ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง ํ์ผ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋๋๋ก ๋ณด์ฅํ์ฌ ๋ธ๋ผ์ฐ์ ์ CDN์ด ์์ฐ์ ํจ๊ณผ์ ์ผ๋ก ์บ์ํ ์ ์๋๋ก ํฉ๋๋ค.
module.exports = {\n output: {\n filename: '[name].[contenthash].js',\n path: path.resolve(__dirname, 'dist'),\n },\n};
2. ์๊ฐ ๊ธฐ๋ฐ ๋ฌดํจํ
์๊ฐ ๊ธฐ๋ฐ ๋ฌดํจํ๋ ํ์ผ์ ์์ ํ์์คํฌํ์ ์์กดํฉ๋๋ค. ๋น๋ ๋๊ตฌ๋ ํ์ผ์ ํ์์คํฌํ๋ฅผ ์บ์์ ์ ์ฅ๋ ํ์์คํฌํ์ ๋น๊ตํฉ๋๋ค. ํ์ผ์ ํ์์คํฌํ๊ฐ ์บ์๋ ํ์์คํฌํ๋ณด๋ค ์ต์ ์ด๋ฉด ์บ์๊ฐ ๋ฌดํจํ๋ฉ๋๋ค.
์๋ ๋ฐฉ์:
- ๋น๋ ๋๊ตฌ๋ ๊ฐ ํ์ผ์ ์ต์ข ์์ ํ์์คํฌํ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
- ์ด ํ์์คํฌํ๋ ์บ์๋ ๊ฒฐ๊ณผ์ ํจ๊ป ์ ์ฅ๋ฉ๋๋ค.
- ํ์ ๋น๋์์ ๋๊ตฌ๋ ํ์ฌ ํ์์คํฌํ๋ฅผ ์ ์ฅ๋ ํ์์คํฌํ์ ๋น๊ตํฉ๋๋ค.
- ํ์ฌ ํ์์คํฌํ๊ฐ ๋ ๋ฆ์ผ๋ฉด ์บ์๊ฐ ๋ฌดํจํ๋ฉ๋๋ค.
์ฅ์ :
- ๊ฐ๋จํจ: ๊ตฌํํ๊ณ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค.
- ๋น ๋ฆ: ํ์์คํฌํ ํ์ธ๋ง ํ์ํ๋ฉฐ, ์ด๋ ๋น ๋ฅธ ์์ ์ ๋๋ค.
๋จ์ :
- ์ ํ์ฑ ๋ถ์กฑ: ์ค์ ์ฝํ ์ธ ์์ ์์ด ํ์ผ์ ํ์์คํฌํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด(์: ํ์ผ ์์คํ ์์ ์ผ๋ก ์ธํด) ๋ถํ์ํ ์บ์ ๋ฌดํจํ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- ํ๋ซํผ ์ข ์์ : ํ์์คํฌํ ํด์๋๋ ์ด์ ์ฒด์ ๋ง๋ค ๋ค๋ฅผ ์ ์์ด ๋ถ์ผ์น๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์๊ธฐ: ์๊ฐ ๊ธฐ๋ฐ ๋ฌดํจํ๋ ์ข ์ข ๋์ฒด ๋ฉ์ปค๋์ฆ์ผ๋ก ์ฌ์ฉ๋๊ฑฐ๋ ์ฝํ ์ธ ๊ธฐ๋ฐ ํด์ฑ์ด ๋ถ๊ฐ๋ฅํ ์ํฉ, ๋๋ ์์ธ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฝํ ์ธ ํด์ฑ๊ณผ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
3. ์์กด์ฑ ๊ทธ๋ํ ๋ถ์
์์กด์ฑ ๊ทธ๋ํ ๋ถ์์ ํ๋ก์ ํธ ๋ด ํ์ผ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ฒํ ํ์ฌ ๋ณด๋ค ์ ๊ตํ ์ ๊ทผ ๋ฐฉ์์ ์ทจํฉ๋๋ค. ๋น๋ ๋๊ตฌ๋ ๋ชจ๋(์: ๋ค๋ฅธ JavaScript ํ์ผ์ ์ํฌํธํ๋ JavaScript ํ์ผ) ๊ฐ์ ์์กด์ฑ์ ๋ํ๋ด๋ ๊ทธ๋ํ๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด ๋๊ตฌ๋ ํด๋น ํ์ผ์ ์์กดํ๋ ๋ชจ๋ ํ์ผ์ ์๋ณํ๊ณ ํด๋น ์บ์๋ ๊ฒฐ๊ณผ๋ ๋ฌดํจํํฉ๋๋ค.
์๋ ๋ฐฉ์:
- ๋น๋ ๋๊ตฌ๋ ๋ชจ๋ ์์ค ํ์ผ์ ํ์ฑํ๊ณ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ํ์ผ์ด ๋ณ๊ฒฝ๋๋ฉด ๋๊ตฌ๋ ๊ทธ๋ํ๋ฅผ ์ํํ์ฌ ๋ชจ๋ ์ข ์ ํ์ผ์ ์ฐพ์ต๋๋ค.
- ๋ณ๊ฒฝ ํ์ผ ๋ฐ ๋ชจ๋ ์ข ์ ํ์ผ์ ์บ์๋ ๊ฒฐ๊ณผ๊ฐ ๋ฌดํจํ๋ฉ๋๋ค.
์ฅ์ :
- ์ ํํจ: ์บ์์ ํ์ํ ๋ถ๋ถ๋ง ๋ฌดํจํํ์ฌ ๋ถํ์ํ ์ฌ๋น๋๋ฅผ ์ต์ํํฉ๋๋ค.
- ๋ณต์กํ ์ข ์์ฑ ์ฒ๋ฆฌ: ๋ณต์กํ ์์กด์ฑ ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๋ณ๊ฒฝ ์ฌํญ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
๋จ์ :
- ๋ณต์ก์ฑ: ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ๊ตฌ์ถํ๊ณ ์ ์งํด์ผ ํ๋ฏ๋ก ๋ณต์กํ๊ณ ๋ฆฌ์์ค ์ง์ฝ์ ์ผ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ: ๋งค์ฐ ํฐ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๊ทธ๋ํ ์ํ๊ฐ ๋๋ฆด ์ ์์ต๋๋ค.
์์ (Parcel):
Parcel์ ์์กด์ฑ ๊ทธ๋ํ ๋ถ์์ ํ์ฉํ์ฌ ์บ์๋ฅผ ์ง๋ฅ์ ์ผ๋ก ๋ฌดํจํํ๋ ๋น๋ ๋๊ตฌ์ ๋๋ค. ๋ชจ๋์ด ๋ณ๊ฒฝ๋๋ฉด Parcel์ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ์ถ์ ํ์ฌ ์ด๋ค ๋ค๋ฅธ ๋ชจ๋์ด ์ํฅ์ ๋ฐ๋์ง ํ์ธํ๊ณ ํด๋น ๋ชจ๋๋ง ๋ค์ ๋น๋ํ์ฌ ๋น ๋ฅธ ์ฆ๋ถ ๋น๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
4. ํ๊ทธ ๊ธฐ๋ฐ ๋ฌดํจํ
ํ๊ทธ ๊ธฐ๋ฐ ๋ฌดํจํ๋ฅผ ์ฌ์ฉํ๋ฉด ์บ์๋ ๊ฒฐ๊ณผ์ ํ๊ทธ ๋๋ ์๋ณ์๋ฅผ ์๋์ผ๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์บ์๋ฅผ ๋ฌดํจํํด์ผ ํ ๋ ํน์ ํ๊ทธ์ ์ฐ๊ฒฐ๋ ์บ์ ํญ๋ชฉ์ ๊ฐ๋จํ ๋ฌดํจํํ ์ ์์ต๋๋ค.
์๋ ๋ฐฉ์:
- ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ ๋ ํ๋ ์ด์์ ํ๊ทธ๋ฅผ ํ ๋นํฉ๋๋ค.
- ๋์ค์ ์บ์๋ฅผ ๋ฌดํจํํ๊ธฐ ์ํด ๋ฌดํจํํ ํ๊ทธ๋ฅผ ์ง์ ํฉ๋๋ค.
- ํด๋น ํ๊ทธ๋ฅผ ๊ฐ์ง ๋ชจ๋ ์บ์ ํญ๋ชฉ์ ์ ๊ฑฐ๋๊ฑฐ๋ ์ ํจํ์ง ์์ ๊ฒ์ผ๋ก ํ์๋ฉ๋๋ค.
์ฅ์ :
- ์๋ ์ ์ด: ์บ์ ๋ฌดํจํ์ ๋ํ ์ธ๋ฐํ ์ ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ํน์ ์๋๋ฆฌ์ค์ ์ ์ฉ: ํน์ ๊ธฐ๋ฅ ๋๋ ํ๊ฒฝ๊ณผ ๊ด๋ จ๋ ์บ์ ํญ๋ชฉ์ ๋ฌดํจํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋จ์ :
- ์๋ ๋ ธ๋ ฅ: ์๋ ํ๊ทธ ์ง์ ๋ฐ ๋ฌดํจํ๊ฐ ํ์ํ๋ฉฐ, ์ด๋ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
- ์๋ ๋ฌดํจํ์ ๋ถ์ ํฉ: ์ธ๋ถ ์ด๋ฒคํธ ๋๋ ์๋ ๊ฐ์ ์ ์ํด ๋ฌดํจํ๊ฐ ํธ๋ฆฌ๊ฑฐ๋๋ ์ํฉ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
์์: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๋ถ๋ถ์ด ๊ตฌ์ฑ์ ๋ฐ๋ผ ํ์ฑํ ๋๋ ๋นํ์ฑํ๋๋ ๊ธฐ๋ฅ ํ๋๊ทธ ์์คํ ์ด ์๋ค๊ณ ์์ํด ๋ณด์ธ์. ์ด๋ฌํ ๊ธฐ๋ฅ ํ๋๊ทธ์ ์์กดํ๋ ๋ชจ๋์ ์บ์๋ ๊ฒฐ๊ณผ์ ํ๊ทธ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ๊ธฐ๋ฅ ํ๋๊ทธ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํด๋น ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์บ์๋ฅผ ๋ฌดํจํํ ์ ์์ต๋๋ค.
ํ๋ฐํธ์๋ ๋น๋ ์บ์ ๋ฌดํจํ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
ํจ๊ณผ์ ์ธ ํ๋ฐํธ์๋ ๋น๋ ์บ์ ๋ฌดํจํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ฌ๋ฐ๋ฅธ ์ ๋ต ์ ํ
์ต๊ณ ์ ์บ์ ๋ฌดํจํ ์ ๋ต์ ํ๋ก์ ํธ์ ํน์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ฝํ ์ธ ๊ธฐ๋ฐ ํด์ฑ์ด ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๋ ์ต์ ์ด์ง๋ง, ๋ชจ๋ ์ ํ์ ํ์ผ์ด๋ ๋น๋ ๋๊ตฌ์ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. ๊ฒฐ์ ์ ๋ด๋ฆด ๋ ์ ํ์ฑ, ์ฑ๋ฅ ๋ฐ ๋ณต์ก์ฑ ๊ฐ์ ์ฅ๋จ์ ์ ๊ณ ๋ คํ์ญ์์ค.
์๋ฅผ ๋ค์ด, Webpack์ ์ฌ์ฉํ๋ค๋ฉด ํ์ผ ์ด๋ฆ์ ์ฝํ ์ธ ํด์ฑ์ ์ํ ๋ด์ฅ ์ง์์ ํ์ฉํ์ญ์์ค. Parcel๊ณผ ๊ฐ์ ๋น๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์์กด์ฑ ๊ทธ๋ํ ๋ถ์์ ํ์ฉํ์ญ์์ค. ๊ฐ๋จํ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์๊ฐ ๊ธฐ๋ฐ ๋ฌดํจํ๋ก ์ถฉ๋ถํ ์ ์์ง๋ง, ๊ทธ ํ๊ณ๋ฅผ ์ธ์งํด์ผ ํฉ๋๋ค.
2. ๋น๋ ๋๊ตฌ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑํ์ธ์
๋๋ถ๋ถ์ ํ๋ฐํธ์๋ ๋น๋ ๋๊ตฌ๋ ์บ์ ๋์์ ์ ์ดํ๊ธฐ ์ํ ๊ตฌ์ฑ ์ต์ ์ ์ ๊ณตํฉ๋๋ค. ์บ์๊ฐ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์ ์ ํ๊ฒ ๋ฌดํจํ๋๋๋ก ์ด๋ฌํ ์ต์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
์์ (Vite):
Vite๋ ๊ฐ๋ฐ ์ ์ต์ ์ ์ฑ๋ฅ์ ์ํด ๋ธ๋ผ์ฐ์ ์บ์ฑ์ ํ์ฉํฉ๋๋ค. `build.rollupOptions.output.assetFileNames` ์ต์ ์ ์ฌ์ฉํ์ฌ ์์ฐ์ด ์บ์๋๋ ๋ฐฉ์์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
// vite.config.js\nimport { defineConfig } from 'vite'\n\nexport default defineConfig({\n build: {\n rollupOptions: {\n output: {\n assetFileNames: 'assets/[name]-[hash][extname]'\n }\n }\n }\n})
3. ํ์ํ ๋ ์บ์๋ฅผ ์ง์ฐ์ธ์
๋๋๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฒ์๋ถํฐ ๋น๋๋๋๋ก ํ๊ธฐ ์ํด ๋น๋ ์บ์๋ฅผ ์๋์ผ๋ก ์ง์์ผ ํ ์๋ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๋น๋ ๋๊ตฌ๋ ์บ์๋ฅผ ์ง์ฐ๊ธฐ ์ํ ๋ช ๋ น์ค ์ต์ ๋๋ API๋ฅผ ์ ๊ณตํฉ๋๋ค.
์์ (npm):\n
npm cache clean --force
์์ (Yarn):\n
yarn cache clean
4. CI/CD ํ์ดํ๋ผ์ธ๊ณผ ํตํฉ
CI/CD ํ๊ฒฝ์์๋ ์บ์ ๋ฌดํจํ๋ฅผ ์ ์ ํ ์ฒ๋ฆฌํ๋๋ก ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฐ ๋น๋ ์ ์ ์บ์๋ฅผ ์ง์ฐ๊ณ , ๋ณ๊ฒฝ๋ ํ์ผ๋ง ์ฌ๋น๋๋๋๋ก ์ฝํ ์ธ ๊ธฐ๋ฐ ํด์ฑ์ ์ฌ์ฉํ๋ฉฐ, CI/CD ํ๋ซํผ์์ ์บ์ฑ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑํ๋ ๊ฒ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์์ (GitHub Actions):
GitHub Actions๋ฅผ ์ฌ์ฉํ์ฌ ์ข ์์ฑ ๋ฐ ๋น๋ ์ํฐํฉํธ๋ฅผ ์บ์ํ ์ ์์ต๋๋ค. ์ ์ ํ ๋ฌดํจํ๋ฅผ ๋ณด์ฅํ๋ ค๋ฉด ์ ๊ธ ํ์ผ ํด์ ๋ฐ ๊ธฐํ ๊ด๋ จ ์์๋ฅผ ํฌํจํ๋ ํค๋ฅผ ์ฌ์ฉํ์ธ์.
steps:\n - uses: actions/checkout@v3\n - uses: actions/setup-node@v3\n with:\n node-version: '16'\n - name: Get yarn cache directory path\n id: yarn-cache-dir-path\n run: echo "::set-output name=dir::$(yarn cache dir)"\n - uses: actions/cache@v3\n id: yarn-cache\n with:\n path: ${{ steps.yarn-cache-dir-path.outputs.dir }}\n key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}\n restore-keys:\n ${{ runner.os }}-yarn-
5. ๋น๋ ์๊ฐ ๋ชจ๋ํฐ๋ง
์ ์ฌ์ ์ธ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ธฐ ์ํด ๋น๋ ์๊ฐ์ ์ ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ญ์์ค. ๋น๋ ์๊ฐ์ด ์ฆ๊ฐํ๊ณ ์๋ค๋ฉด ์บ์๊ฐ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋์ง, ๋ฌดํจํ ์ ๋ต์ด ์์๋๋ก ์๋ํ๋์ง ์กฐ์ฌํ์ญ์์ค.
Webpack Bundle Analyzer์ ๊ฐ์ ๋๊ตฌ๋ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์๊ฐํํ๊ณ ์ต์ ํ ๊ธฐํ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. CI/CD ํ๋ซํผ์ ์ข ์ข ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ฑ๋ฅ์ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋น๋ ์๊ฐ ๋ฉํธ๋ฆญ์ ์ ๊ณตํฉ๋๋ค.
6. ์๊ฒฉ ์บ์ฑ ๊ณ ๋ ค
๋ถ์ฐ ํ๊ฒฝ์์ ์์ ํ๋ ํ์ ๊ฒฝ์ฐ ์๊ฒฉ ์บ์ฑ์ ๋น๋ ์๊ฐ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์๊ฒฉ ์บ์ฑ์ ์ค์ ์ง์ค์ ์๋ฒ์ ๋น๋ ์บ์๋ฅผ ์ ์ฅํ์ฌ ๊ฐ๋ฐ์๊ฐ ์บ์๋ฅผ ๊ณต์ ํ๊ณ ๋์ผํ ํ์ผ์ ๋ฐ๋ณต์ ์ผ๋ก ๋ค์ ๋น๋ํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์๋๋ก ํฉ๋๋ค.
Nx Cloud ๋ฐ Turborepo์ ๊ฐ์ ๋๊ตฌ๋ ๋น๋ ํ๋ก์ธ์ค์ ํตํฉ๋ ์ ์๋ ์๊ฒฉ ์บ์ฑ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ๋น๋ ๋๊ตฌ ์ ํ
๋น๋ ๋๊ตฌ ์ ํ์ ๋น๋ ์บ์๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ฌดํจํ ์ ๋ต์ ๊ตฌํํ๋ ๋ฐฉ์์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ธ๊ธฐ ์๋ ๋๊ตฌ์ ๊ทธ ์บ์ฑ ๊ธฐ๋ฅ์ ๋ํ ๊ฐ๋ตํ ๊ฐ์์ ๋๋ค.
- Webpack: ํ๋ฌ๊ทธ์ธ ๋ฐ ๊ตฌ์ฑ ์ต์ ์ ํตํด ์บ์ฑ์ ๊ด๋ฒ์ํ๊ฒ ์ง์ํ๋ ๊ณ ๋๋ก ๊ตฌ์ฑ ๊ฐ๋ฅํ ๋ฒ๋ค๋ฌ์ ๋๋ค. ๊ฒฌ๊ณ ํ ์บ์ ๋ฌดํจํ๋ฅผ ์ํด ์ฝํ ์ธ ํด์ฑ์ ํ์ฉํฉ๋๋ค.
- Parcel: ๋น ๋ฅธ ์ฆ๋ถ ๋น๋๋ฅผ ์ํด ์บ์ฑ ๋ฐ ์์กด์ฑ ๊ทธ๋ํ ๋ถ์์ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ ์ ๋ก ๊ตฌ์ฑ ๋ฒ๋ค๋ฌ์ ๋๋ค.
- Vite: ๊ฐ๋ฐ ์ค์๋ ๋ค์ดํฐ๋ธ ES ๋ชจ๋์ ์ฌ์ฉํ๊ณ ํ๋ก๋์ ๋น๋์๋ Rollup์ ์ฌ์ฉํ๋ ๋น ๋ฅด๊ณ ๊ฐ๋ฒผ์ด ๋น๋ ๋๊ตฌ์ ๋๋ค. ํนํ ๊ฐ๋ฐ ์ค์ ๋ฐ์ด๋ ์บ์ฑ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- esbuild: Go๋ก ์์ฑ๋ ๋งค์ฐ ๋น ๋ฅธ JavaScript ๋ฒ๋ค๋ฌ ๋ฐ ๋ฏธ๋ํ์ด์ด์ ๋๋ค. Webpack์ด๋ Parcel๊ณผ ๊ฐ์ ์ ๊ตํ ์บ์ฑ ์์คํ ์ ์์ง๋ง, ๊ทธ ์๋๊ฐ ์ข ์ข ์ด๋ฅผ ๋ณด์ํฉ๋๋ค.
๋น๋ ๋๊ตฌ๋ฅผ ์ ํํ ๋ ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ํ๋ก์ ํธ ๊ท๋ชจ ๋ฐ ๋ณต์ก์ฑ: ํฌ๊ณ ๋ณต์กํ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๊ฐ๋ ฅํ ์บ์ฑ ๋ฐ ์ข ์์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋๊ตฌ๊ฐ ํ์์ ์ ๋๋ค.
- ๊ตฌ์ฑ ์๊ตฌ ์ฌํญ: ์ผ๋ถ ๋๊ตฌ๋ ๋ค๋ฅธ ๋๊ตฌ๋ณด๋ค ๋ ๋ง์ ๊ตฌ์ฑ์ด ํ์ํฉ๋๋ค. ๊ฒฐ์ ์ ๋ด๋ฆด ๋ ํ์ ๊ฒฝํ๊ณผ ์ ํธ๋๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
- ์ฑ๋ฅ: ํ๋ก์ ํธ์์ ๋ค์ํ ๋๊ตฌ์ ๋น๋ ์๊ฐ์ ํ๊ฐํ์ฌ ์ด๋ค ๋๊ตฌ๊ฐ ์ต๊ณ ์ ์ฑ๋ฅ์ ์ ๊ณตํ๋์ง ๊ฒฐ์ ํ์ญ์์ค.
- ์ปค๋ฎค๋ํฐ ์ง์ ๋ฐ ์ํ๊ณ: ๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ์ ํ๋ถํ ํ๋ฌ๊ทธ์ธ ๋ฐ ํ์ฅ ์ํ๊ณ๋ฅผ ๊ฐ์ถ ๋๊ตฌ๋ฅผ ์ ํํ์ญ์์ค.
์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋ฐ ๋ฌธ์ ํด๊ฒฐ
์ ์ ์๋ ์บ์ ๋ฌดํจํ ์ ๋ต์๋ ๋ถ๊ตฌํ๊ณ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ ๋ฐ ๋ฌธ์ ํด๊ฒฐ ํ์ ๋๋ค.
- ์ค๋๋ ์ฝ๋: ์ต๊ทผ ๋ณ๊ฒฝ์ฌํญ์๋ ๋ถ๊ตฌํ๊ณ ์ค๋๋ ์ฝ๋๊ฐ ๋ณด์ธ๋ค๋ฉด, ์บ์ ๋ฌดํจํ ์ค์ ์ ๋ค์ ํ์ธํ๊ณ ์ฝํ ์ธ ํด์ฑ์ด ์ ๋๋ก ๊ตฌ์ฑ๋์๋์ง ํ์ธํ์ญ์์ค. ์ ์ฒด ์ฌ๋น๋๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์บ์๋ฅผ ์๋์ผ๋ก ์ง์๋ณด์ญ์์ค.
- ์ผ๊ด์ฑ ์๋ ๋น๋: ๋น๋ ํ๊ฒฝ์ ์ฐจ์ด๋ก ์ธํด ์ผ๊ด์ฑ ์๋ ๋น๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ๋์ผํ ๋ฒ์ ์ Node.js, npm ๋ฐ ๊ธฐํ ์ข ์์ฑ์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ์ญ์์ค. Docker์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๊ด๋ ๋น๋ ํ๊ฒฝ์ ๋ง๋์ญ์์ค.
- ๋๋ฆฐ ๋น๋ ์๊ฐ: ์บ์ฑ์ด ํ์ฑํ๋์ด ์์์๋ ๋น๋ ์๊ฐ์ด ๋๋ฆฌ๋ค๋ฉด, ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ๋ถ์ํ๊ณ ์ต์ ํ ๊ธฐํ๋ฅผ ์๋ณํ์ญ์์ค. Webpack Bundle Analyzer์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ๋ค์ ์๊ฐํํ๊ณ ํฐ ์ข ์์ฑ์ ์๋ณํ์ญ์์ค.
- ํ์ผ ์์คํ ๋ฌธ์ : ํ์ผ ์์คํ ์์ ์ด ๋๋๋ก ์บ์ ๋ฌดํจํ๋ฅผ ๋ฐฉํดํ ์ ์์ต๋๋ค. ํ์ผ ์์คํ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ด ์๊ณ ์ถฉ๋ถํ ๋์คํฌ ๊ณต๊ฐ์ด ์๋์ง ํ์ธํ์ญ์์ค.
- ์๋ชป๋ ์บ์ ๊ตฌ์ฑ: ๋น๋ ๋๊ตฌ์ ๊ตฌ์ฑ์ ๊ฒํ ํ์ฌ ์บ์ฑ์ด ํ์ฑํ๋๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํ์ญ์์ค. ์บ์ ์์น, ๋ง๋ฃ ๋ฐ ๋ฌดํจํ์ ๊ด๋ จ๋ ์ค์ ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ญ์์ค.
์ค์ ์ฌ๋ก
๋ค์ํ ์กฐ์ง์ด ํ๋ฐํธ์๋ ๊ฐ๋ฐ ์ํฌํ๋ก๋ฅผ ์ต์ ํํ๊ธฐ ์ํด ๋น๋ ์บ์ ๋ฌดํจํ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํ ๋ช ๊ฐ์ง ์ค์ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ๋๊ท๋ชจ ์ ์์๊ฑฐ๋ ํ๋ซํผ: ๋ณต์กํ ๋ง์ดํฌ๋ก ํ๋ฐํธ์๋ ์ํคํ ์ฒ๋ฅผ ๊ฐ์ง ๋๊ท๋ชจ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ Webpack๊ณผ ์ฝํ ์ธ ํด์ฑ์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ ๋ง์ดํฌ๋ก ํ๋ฐํธ์๋๋ง ์ฌ๋น๋๋๊ณ ๋ฐฐํฌ๋๋๋ก ํฉ๋๋ค. ๋ํ ๋ถ์ฐ ๊ฐ๋ฐ ํ ์ ์ฒด์์ ๋น๋ ์บ์๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ์๊ฒฉ ์บ์ฑ ์๋ฃจ์ ์ ์ฌ์ฉํฉ๋๋ค.
- ์คํ ์์ค ํ๋ก์ ํธ: ์คํ ์์ค ํ๋ก์ ํธ๋ Parcel์ ์ฌ์ฉํ์ฌ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ์บ์ฑ์ ์๋์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค. Parcel์ ์์กด์ฑ ๊ทธ๋ํ ๋ถ์์ ์บ์์ ํ์ํ ๋ถ๋ถ๋ง ๋ฌดํจํ๋๋๋ก ๋ณด์ฅํ์ฌ ๋น ๋ฅธ ์ฆ๋ถ ๋น๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ์คํํธ์ : ์คํํธ์ ์ ๋น ๋ฅธ ๊ฐ๋ฐ ์๋์ ๋ฐ์ด๋ ์บ์ฑ ์ฑ๋ฅ์ ์ํด Vite๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฐ๋ฐ ์ค Vite์ ๋ค์ดํฐ๋ธ ES ๋ชจ๋ ์ฌ์ฉ์ ๊ฑฐ์ ์ฆ๊ฐ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๊ฒฐ๋ก
ํจ๊ณผ์ ์ธ ํ๋ฐํธ์๋ ๋น๋ ์บ์ ๋ฌดํจํ๋ ์ฆ๋ถ ๋น๋๋ฅผ ์ต์ ํํ๊ณ , ๋น๋ ์๊ฐ์ ๋จ์ถํ๋ฉฐ, ๊ฐ๋ฐ์ ๊ฒฝํ์ ํฅ์์ํค๋ ๋ฐ ์ค์ํฉ๋๋ค. ๋ค์ํ ์ ํ์ ์บ์ ๋ฌดํจํ ์ ๋ต์ ์ดํดํ๊ณ , ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉฐ, ์ฌ๋ฐ๋ฅธ ๋น๋ ๋๊ตฌ๋ฅผ ์ ํํจ์ผ๋ก์จ ํ๋ฐํธ์๋ ๊ฐ๋ฐ ์ํฌํ๋ก๋ฅผ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ต์ ์ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋น๋ ์๊ฐ์ ์ ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ํ์์ ๋ฐ๋ผ ์บ์ ๋ฌดํจํ ์ ๋ต์ ์กฐ์ ํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ์๋์ ํจ์จ์ฑ์ด ๊ฐ์ฅ ์ค์ํ ์ธ์์์ ๋น๋ ์บ์ ๋ฌดํจํ๋ฅผ ์๋ฌํ๋ ๊ฒ์ ์์ฐ์ฑ ํฅ์๊ณผ ๋ ํ๋ณตํ ๊ฐ๋ฐ ํ์ผ๋ก ์ด์ด์ง๋ ํฌ์์ ๋๋ค. ์ ๊ตฌ์ฑ๋ ๋น๋ ์บ์์ ํ์ ๊ณผ์ํ๊ฐํ์ง ๋ง์ญ์์ค. ์ด๋ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ํ๋ฐํธ์๋ ๊ฐ๋ฐ์ ์ํ ๋น๋ฐ ๋ณ๊ธฐ๊ฐ ๋ ์ ์์ต๋๋ค.